﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using VisionCloud.Core.Model.Ms;
using VisionCloud.Domain.DtoModel.Ms;

namespace VisionCloud.Domain.Repository.Interface.Ms
{
    public interface IAlgorithmRepository : IBaseRepository<MsAlgorithmParamTemplate>
    {
        /// <summary>
        /// 获取项目所有的算法模板
        /// </summary>
        /// <param name="projectId">项目id</param>
        /// <returns></returns>
        Task<List<MsAlgorithmParamTemplate>> GetListByProjectId(Guid projectId);

        /// <summary>
        /// 获取算法模板配置项详情
        /// </summary>
        /// <param name="algorithmParamTemplateId">算法模板Id</param>
        /// <returns></returns>
        Task<List<MsAlgoItemDto>> GetAlgorithmParamTemplateItems(Guid algorithmParamTemplateId);

        /// <summary>
        /// 删除算法模板
        /// </summary>
        /// <param name="algorithmParamTemplateId">算法模板Id</param>
        /// <returns>项目id</returns>
        Guid DeleteAlgorithmTemplate(Guid algorithmParamTemplateId);

        Task<List<MsProjectAlgorithm>> GetMsProjectAlgorithmsByProjIds(Guid[] projIds);

        Task<List<MsAlgorithmParamTemplate>> GetMsAlgorithmParamTemplatesByProjIds(Guid[] projIds);

        Task<List<MsAlgorithmParamTemplateItem>> GetAlgorithmParamTemplateItemsByProjIds(Guid[] projIds);
    }
}
